function sortMatrix(grid) {
  // 将函数名改为sortMatrix
  const n = grid.length;
  // 创建一个副本避免修改原数组
  const result = grid.map((row) => [...row]);

  // 处理所有对角线
  for (let i = 0; i < n; i++) {
    for (let j = 0; j < n; j++) {
      // 只处理每条对角线的起点元素（i=0或j=0）
      if (i === 0 || j === 0) {
        // 收集对角线上的所有元素
        const diagonal = [];
        let x = i,
          y = j;
        while (x < n && y < n) {
          diagonal.push(grid[x][y]);
          x++;
          y++;
        }

        // 根据对角线位置确定排序方式
        let sorted;
        if (i >= j) {
          // 左下角三角形（包括主对角线）
          sorted = [...diagonal].sort((a, b) => b - a); // 非递增
        } else {
          // 右上角三角形
          sorted = [...diagonal].sort((a, b) => a - b); // 非递减
        }

        // 将排序后的元素放回矩阵
        x = i;
        y = j;
        for (let k = 0; k < sorted.length; k++) {
          result[x][y] = sorted[k];
          x++;
          y++;
        }
      }
    }
  }

  return result;
}

// 测试用例
console.log(
  sortMatrix([
    [1, 7, 3],
    [9, 8, 2],
    [4, 5, 6],
  ])
);
// 输出: [[8,2,3],[9,6,7],[4,5,1]]

console.log(
  sortMatrix([
    [0, 1],
    [1, 2],
  ])
);
// 输出: [[2,1],[1,0]]

console.log(sortMatrix([[1]]));
// 输出: [[1]]
